The World Wide Web, also referred to as the Internet, is a global computing environment in which all types information that is accessible from the Internet can be accessed in a consistent and simple way by using a standard set of naming and accessing conventions. Internet users can access computing sites all over the world from one location. A user can connect from his/her machine to thousands of Web servers simply by “clicking” on an image or by entering a specific address. Users can connect to many different types of systems and not be aware of the system differences. Users can also access many different types of information such as text, images, audio, video and computational services. The user can perform all of these tasks using a single web-browser that can access this information. The ability to access information via the Internet is the result of hotspots (hyperlinks) that connect this seemingly infinite body of information together. A hotspot is text or an image in a web site that can be accessed in order to have some action performed. During this process of accessing a hotspot, the user typically moves a pointing device such as a mouse over certain areas referred to as hotspots, then clicks the mouse to signal the initialization of the desired action.
In a computing environment, there are many graphical displays that appear on a user's machine. There are countless types of displays in any computing environment and include typical displays such as web pages and presentation slides. These displays also contain information related to the nature of the particular display. The pieces of information on a display can be referred to as objects and can include text, charts, graphs and pictorial_images. Each display contains one or more of these objects. Each display also contains information about the objects contained on the display. This information includes information about any hotspot (hyperlink) objects contained on the display. This additional information is created by software during the creation of the display and is stored such that the information is transparent to the user or viewer of the display.
In many cases, the displays may be part of a larger set of displays. This situation is often seen with presentation slides. Slide presentations can contain multiple slides that are presented in a predetermined sequence. In these cases, it is sometimes necessary to transport the entire set of slides or to store the entire set of slides. During the transportation or storage of graphical displays it may be necessary or desired, to convert the displays to a compressed form in order to save storage space or to facilitate faster transport.
One standard for compression of still images is referred to as the JPEG standard. The Joint Photographic Experts Group (JPEG) has promulgated a standard for still image compression, which employs a Discrete Cosine Transform-based algorithm. The JPEG standard is described in a number of publications. FIG. 1 describes the basic JPEG image encoding process. The JPEG method divides up the image into 8.times.8 pixel blocks 20, and then calculates the discrete cosine transform (DCT) of each block 21. The discrete cosine transform (DCT) helps separate the image into parts (or spectral sub-bands) of differing importance (with respect to the image's visual quality). The DCT is similar to the discrete Fourier transform: it transforms a signal or image from the spatial domain to the frequency domain. A quantizer rounds off the DCT coefficients according to the quantization matrix 22. This step produces the “lossy” nature of JPEG, but allows for large compression ratios. JPEG compression techniques convert these coefficients to a binary data stream. In this encoding process 23, JPEG's compression technique uses a variable length code on these coefficients, and then writes the compressed data stream 24 to an output file. For decompression, JPEG recovers the quantized DCT coefficients from the compressed data stream, takes the inverse transforms and displays the image.
FIG. 2 illustrates a more detailed description of the JPEG encoding process. As shown, in the JPEG compression method implementing sequential encoding, the original image is divided into blocks of pixels, each block typically containing 8.times.8 or 16.times.16 original image samples 25. Each 8.times.8 block of pixels is input to a DCT-encoder element 26 having a forward discrete cosine transform processor 27 that performs a Discrete Cosine Transform (DCT) on each pixel block. This transformation produces a representation of the input block as DCT coefficients corresponding to frequencies and amplitudes, rather than corresponding directly to color information. These coefficients are then quantized, or rounded off, by a quantizer element 28 in accordance with a quantization table 29, and DC coding is performed that employs a difference algorithm over all quantized blocks in the image, in a selected scan order. This difference algorithm subtracts a “DC” or zero frequency term corresponding to the mean pixel value of a block, from the DC term of the preceding block. The difference coefficients are then scanned in a different order, such as a zigzag order, and the non-zero coefficients (i.e., blocks in which a difference from the preceding block occurred) are coded to indicate the number of preceding zero coefficients (i.e., the number of pixel blocks in which no change occurred) and also the value of the non-zero difference. An additional compression step known as entropy encoding is performed by encoder element 30 to achieve a more compact coding of the quantized DCT elements. Entropy encoding schemes specified by the JPEG standard include Huffman coding and arithmetic coding, with the optional implementation of entropy encoding tables 31. The output 32 of the DCT encoder 26 is a data stream of compressed image data.
It should be understood that the key feature of JPEG compression is that an image is first segmented into disjoint 8.times.8 pixel blocks, each of which is replaced by its 2D DCT. In such a representation, the high frequencies tend to have very small coefficients enabling JPEG quantization to drive most of these coefficients to zero. This enables fewer bits to be stored after encoding.
Decompression is performed by reversing the compression process, and thereby producing the displayable image. As shown in FIG. 3, this typically involves inputting the compressed image data 33 into a DCT decoder 34 including an entropy decoder block 35 for decoding the compressed image data stream, e.g., in accordance with a Huffman decoding technique. At the output of the entropy decoder 35 the same data structure that the encoder 26 had at the end of the DCT transform is created. Then, a dequantization block 36 for dequantizing the image samples, and an inverse discrete cosine transform processor 37 for performing an inverse discrete cosine transform taking the decoded 64 DCT coefficients and reconstructing the original image.
As is known, the usefulness of decompression algorithms is determined by the number and the speed of mathematical computations performed to obtain the identifiable decompressed image. Typically, in image searching applications, it is required that each image is fully decompressed before the target image is located, which is a costly proposition as many computations are required to achieve full decompression.
One image application that incorporates decompression for storage purposes is slide presentations. For example, a user can assume that a server stores a repository of 1,000,000 PowerPoint slides previously exported from PowerPoint into the JPEG graphical images format. In addition, for those slides, assume there is already a function that bookmarks these slides and then automatically brings them down to a user PC and brings them into the PowerPoint program. At this point, the user needs to know of any Hotspots that were in the original slide before decompression that may not included in the slides brought to the user. This information could have been lost during the compression and decompression process. As previously mentioned, Hotspots are areas on an image that link the image to executable instructions for specific operations. For example, the icons on a desktop would be Hotspots. Without knowledge of the layout of an original slide, a user may not know that some Hotspot or other information from a slide may have been lost during the compression and transfer procedures.
The current state of the art implementation of hotspot hyperlinks comprised of (usually underscored) text strings is quite simple, the implementation of hotspots made up of pixel areas on an image is a bit more complex as a tool is required for the definition of the hotspot areas on the image. There remains a need for a method and system to track hotspot information on an image and include the hotspot information inside the actual image file to make it a complete navigation vehicle.